The present invention relates generally to data communication systems and more particularly relates to synchronization and alignment of multiple variable length cell streams.
The world is currently witnessing explosive growth in the demand for communications networks and systems and it is predicted that this demand will increase in the future. The demand for data services is growing at an ever increasing rate. Meeting these demands requires communication networks having higher bandwidth capabilities. In an effort to meet this demand, carriers must install facilities that are capable of carrying increasing amounts of data traffic. Manufacturers of network equipment attempt to keep up with the demand by developing equipment that can handle higher bandwidths.
As network devices are required to handle higher and higher data rates, it becomes increasing difficult to process data serially due to the very clock rates involved. For example, an OC-48 rate of 2.4 Gbps has a period less then one half microsecond. In order to process data at such high rates, the input data streams are split into separate multiple streams and processed in parallel. The resultant parallel streams are then re-combined into a single output stream.
A block diagram illustrating an example synchronous data communications processing system is shown in FIG. 1. The communications device, generally referenced 10, comprises ingress data 18 that is input to a source module 12. The source module splits the input data stream into a plurality of individual data streams 13 that are then processed in parallel by processing modules 14. Each data stream may be processed by any number of processing modules #1 through #N. The processing modules may perform any type of processing. After processing is complete, the resultant individual data streams are combined at the destination 16 into a single output data stream 20.
A problem typically encountered is that the individual data streams encounter different delays along each of the processing paths. The delays can be caused by any reason but are typically caused by differing processing delays, signal propagation delays, etc. At the destination, however, the individual data streams must be aligned in time before they can be properly combined.
Thus there is a need for a mechanism that can synchronize and align multiple data streams for recombination into a single output data stream.
Accordingly, the present invention provides a novel and useful mechanism of synchronizing and aligning a plurality of data streams. The present invention is particularly useful in synchronous communication systems comprising one or more modules whereby data is input as a single input data streams, split into multiple data streams for processing and then combined into a single output data stream. The modules may comprise individual PCB cards in a system, individual systems connected over a network or may comprise different components on the same PCB.
For illustration purposes, the invention is described in the context of a communications device. Note, however, that it is not intended that the invention be limited to the examples presented herein. It is appreciated that one skilled in the art can apply the principles of the invention to other systems as well wherein it is required that a plurality of data streams be synchronized and aligned prior to being combined and output as a single data stream.
The invention comprises a plurality of sync machines and an alignment circuit which in combination function to synchronize and align multiple variable length cell streams. Each sync machine is operative to control the output clocking of a corresponding FIFO queue. The data stream output of each FIFO queue is monitored by a sync machine and all the sync machines are coupled to the alignment circuit. In operation, the sync machines synchronize to the cells by searching for the error checks sequence (ECS) at the end of each cell. Synchronization is achieved by counting bytes until the ECS. The ECS is then generated and compared to the ECS in the cell.
Upon synchronization being achieved for all the data streams, the alignment circuit is operative to cause each sync machine to freeze its respective FIFO until the ECS arrives on the data stream most delayed in time. Once the ECS is received on the slowest data stream, the alignment circuit releases the hold and consequently the FIFOs are released by the sync machines. Normal output clocking of the FIFOs then proceeds with all the data streams aligned in time.
Many aspects of the previously described invention may be constructed as software objects that execute in embedded devices as firmware, software objects that execute as part of a software application on a computer system running an operating system such as Windows, UNIX, LINUX, etc., an Application Specific Integrated Circuit (ASIC), Field Programmable Gate Array (FPGA) or functionally equivalent discrete hardware components.
There is thus provided in accordance with the present invention a method of aligning a plurality of data streams, each data stream comprising a series of cells, each cell comprising a data portion and an error check sequence (ECS), the method comprising the steps of synchronizing on each data stream independently by determining the start and end of each cell in accordance with its length, and generating a synchronization pulse upon the detection of the ECS in each cell, generating a hold signal upon the generation of a synchronization pulse produced in response to the last of the plurality of data streams to achieve synchronization, suspending the flow of each of the data streams in response to the assertion of the hold signal and upon the detection of the subsequent ECS within each particular data stream and resuming the flow of each of the data streams simultaneously upon the detection of the ECS associated with the most delayed in time data stream.
There is also provided in accordance with the present invention an alignment apparatus for aligning a plurality of data streams, each data stream comprising a series of cells, each cell comprising a data portion and an error check sequence (ECS) comprising a plurality of synchronization machines, each synchronization machine adapted to receive one of the data streams, determine the start and end of each cell in accordance with its length, and to generate a synchronization pulse upon the detection of the ECS in each cell, wherein each synchronization machine comprises suspension means adapted to suspend the flow of a particular data stream upon the assertion of a hold signal and the detection of the subsequent ECS within the particular data stream and adapted to resume the flow of the data stream in response to the de-assertion of the hold signal, an alignment mechanism operative to assert the hold signal upon the generation of a synchronization pulse produced in response to the last of the plurality of data streams to achieve synchronization, and to de-assert the hold signal, thus causing the simultaneous resumption of the flows of each the data stream, upon the detection of the ECS associated with the most delayed in time data stream.
There is further provided in accordance with the present invention a data communications system for processing an input data stream as a plurality of data streams, each data stream comprising a series of cells, each cell comprising a data portion and an error check sequence (ECS) comprising a receive line card adapted to receive and split the input data stream into a plurality of data streams, a plurality of processing cards, each processing card operative to process one of the data streams, a transmit line card operative to align and combine the plurality of data streams output of the processing cards into a single output data stream, the transmit line card comprising alignment means operative to synchronize on each data stream independently by determining the start and end of each cell in accordance with its length, and generating a synchronization pulse upon the detection of the ECS in each cell, generate a hold signal upon the generation of a synchronization pulse produced in response to the last of the plurality of data streams to achieve synchronization, suspend the flow of each of the data streams in response to the assertion of the hold signal and upon the detection of the subsequent ECS within each particular data stream and resume the flow of each of the data streams simultaneously upon the detection of the ECS associated with the most delayed in time data stream.